package services.impl;

import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;

import services.AdministradorFacade;
import services.CotizacionService;
import services.ExchangeFormatService;
import services.OrdenCompraService;
import entities.Cotizacion;
import entities.ItemCotizacion;
import entities.Venta;
import entities.xml.CotizacionXML;
import finals.Finals;

@WebService(targetNamespace="http://casacentral.ingsoft.uade.edu.ar/")
@Stateless
public class AdministradorFacadeBean implements AdministradorFacade{
	
	private Logger logger = Logger.getLogger(Finals.LOGPATH);
	
	@EJB 
	private OrdenCompraService ordenCompraService;
	
	@EJB
	private CotizacionService cotizacionService;
	
	@EJB
	private ExchangeFormatService exchangeFormatService;
	
	public void procesarOrdenCompra(String pedidoVentaXML, String ofVentaAlias) {
		logger.log(Level.INFO, "entered procesarOrdenCompra on FacadeBean");
		Venta venta = exchangeFormatService.getVenta(pedidoVentaXML);
		ordenCompraService.generarYEnviarOC(venta.getItems());
		ordenCompraService.generarYEnviarRemito(venta.getItems(), venta.getClienteId(), ofVentaAlias);
	}
	
	@WebMethod
	public String publicarComparativaDePrecios(String solicitudCotizacionXML) {
		logger.log(Level.INFO, "entered publicarComparativaDePrecios on FacadeBean");
		List<ItemCotizacion> itemsCotizacion = exchangeFormatService.getItemsCotizacionFromEF(solicitudCotizacionXML);
		
		Cotizacion cotizacion = cotizacionService.cotizar(itemsCotizacion);
		
		String cotizacionXML = exchangeFormatService.toEF(cotizacion, new CotizacionXML());
		return cotizacionXML;
	}
}
